package com.jia.product.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jia.product.entity.Attr;
import com.jia.product.entity.AttrGroup;
import com.jia.product.vo.AttrGroupWithAttrVo;

import java.util.List;

/**
 * 属性分组(AttrGroup)表服务接口
 *
 * @author makejava
 * @since 2025-07-08 18:15:25
 */
public interface AttrGroupService extends IService<AttrGroup> {

    /**
     * 分页查询
     *
     * @param categoryId 分类id
     * @return 分页对象
     */
    Page<AttrGroup> pageQuery(long current, long size, String key, Long categoryId);

    /**
     * 带路径的详情查询
     *
     * @param attrGroupId 主键id
     * @return 实例对象
     */
    AttrGroup getByIdWithPath(Long attrGroupId);

    /**
     * 分组查询属性
     *
     * @param attrGroupId 分组id
     * @return 实例对象数组
     */
    List<Attr> listAttrByGroup(Long attrGroupId);

    /**
     * 当前分组 查询未选择的属性
     *
     * @param attrGroupId 分组id
     * @return 实例对象分页
     */
    Page<Attr> unListAttrByGroup(long current, long size, Long attrGroupId);

    /**
     * 查询分类下的属性和属性分组
     *
     * @param categoryId 分类id
     * @return 实例对象列表
     */
    List<AttrGroupWithAttrVo> queryGroupWithAttrBy(Long categoryId);
}

